
/**
 * 获取链接后面的参数
 * @param String name 需要获取的参数名字
 */
export function getQueryString (name) {
  var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
  var r = window.location.search.substr(1).match(reg)
  return r != null ? unescape(r[2]) : null
}
/**
 * 文件转换为base64
 */
export function readAsDataURL (file, cb) {
  let _this = this
  let reader = new window.FileReader()
  reader.onload = () => {
    if (cb) cb(reader.result)
  }
  reader.readAsDataURL(file)
}
/**
 * 获取当前的后dates周
 * @param {String} type s-开始时间 e-结束时间
 * @param {Number} dates
 */
export function getWeek (type, dates) {
  var now = new Date()
  var nowTime = now.getTime()
  var day = now.getDay()
  var longTime = 24 * 60 * 60 * 1000
  var n = longTime * 7 * (dates || 0)
  var dd
  if (type === 's') {
    dd = nowTime - (day - 1) * longTime + n
  }
  if (type === 'e') {
    dd = nowTime + (7 - day) * longTime + n
  }
  dd = new Date(dd)
  var y = dd.getFullYear()
  var m = dd.getMonth() + 1
  var d = dd.getDate()
  m = m < 10 ? '0' + m : m
  d = d < 10 ? '0' + d : d
  return (y + '-' + m + '-' + d)
}
/**
 * 获取当前的后months月
 * @param {String} type s-开始时间 e-结束时间
 * @param {Number} months
 */
export function getMonth (type, months) {
  var d = new Date()
  var year = d.getFullYear()
  var month = d.getMonth() + 1
  if (Math.abs(months) > 12) {
    months = months % 12
  }
  if (months !== 0) {
    if (month + months > 12) {
      year++
      month = (month + months) % 12
    } else if (month + months < 1) {
      year--
      month = 12 + month + months
    } else {
      month = month + months
    }
  }
  month = month < 10 ? '0' + month : '' + month
  var date = d.getDate()
  var firstday = year + '-' + month + '-' + '01'
  var lastday = ''
  if (month === '01' || month === '03' || month === '05' || month === '07' || month === '08' || month === '10' || month === '12') {
    lastday = year + '-' + month + '-' + 31
  } else if (month === '02') {
    if ((year % 4 === 0 && year % 100 === 0) || (year % 100 === 0 && year % 400 === 0)) {
      lastday = year + '-' + month + '-' + 29
    } else {
      lastday = year + '-' + month + '-' + 28
    }
  } else {
    lastday = year + '-' + month + '-' + 30
  }
  var day = ''
  if (type === 's') {
    day = firstday
  } else {
    day = lastday
  }
  return day
}
/**
 * 获取当前的后dates年
 * @param {String} type s-开始时间 e-结束时间
 * @param {Number} dates
 */
export function getYear (type, dates) {
  var dd = new Date()
  var n = dates || 0
  var year = dd.getFullYear() + Number(n)
  var day
  if (type === 's') {
    day = year + '-01-01'
  }
  if (type === 'e') {
    day = year + '-12-31'
  }
  if (!type) {
    day = year + '-01-01/' + year + '-12-31'
  }
  return day
}
/**
 * 格式化时间
 * @param {*} dateObj
 * @param {*} FMT
 */
export function formatDate (dateObj, FMT) {
  var fmt = FMT
  var o = {
    'M+': dateObj.getMonth() + 1, // 月份
    'd+': dateObj.getDate(), // 日
    'h+': dateObj.getHours(), // 小时
    'm+': dateObj.getMinutes(), // 分
    's+': dateObj.getSeconds(), // 秒
    'q+': Math.floor((dateObj.getMonth() + 3) / 3), // 季度
    'S': dateObj.getMilliseconds() // 毫秒
  }
  if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (dateObj.getFullYear() + '').substr(4 - RegExp.$1.length))
  for (var k in o) {
    if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
  }
  return fmt
}
/**
 * 格式化金额
 * @param {*} th
 */
export function formatMoney (money) {
  var regStrs = [
    ['^0(\\d+)$', '$1'], // 禁止录入整数部分两位以上，但首位为0
    ['[^\\d\\.]+$', ''], // 禁止录入任何非数字和点
    ['\\.(\\d?)\\.+', '.$1'], // 禁止录入两个以上的点
    ['^(\\d+\\.\\d{2}).+', '$1'] // 禁止录入小数点后两位以上
  ]
  var newMoney = money + ''
  for (var i = 0; i < regStrs.length; i++) {
    var reg = new RegExp(regStrs[i][0])
    newMoney = newMoney.replace(reg, regStrs[i][1])
  }
  return newMoney ? (+newMoney).toFixed(2) : ''
}
